Method and apparatus for implied editing action through directional and ordered data selection

ABSTRACT

Provided are a computer implemented method and apparatus for manipulating data through directional or ordered selection of data. A first user input is received for selecting a section of data in a direction of selection, or an order of selection, from a source. A second user input is received for performing a basic editing operation on the selection. Responsive to the second input received from the user, the selected section of data is re-oriented or re-ordered in a direction or order corresponding to the direction or order of selection. A third user input is received for performing a basic editing operation at a destination. The re-oriented or re-ordered section of data is subjected to the second action at the destination. Once the user has selected a section of data, the user can also choose to re-orient or re-order the data in conjunction with a basic editing operation by selecting an enhanced editing operation that implements the inventive method from a menu.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The aspects believed novel relate generally to an improved dataprocessing system and in particular to an improved method and apparatusfor processing data. Still more particularly, the aspects provide amethod and apparatus for re-orienting or re-ordering of data based ondirectional or ordered selection of data.

2. Description of the Related Art

In data processing systems, some basic activities with respect to datainvolve moving, organizing, and editing the data. For this purpose,software applications designed to run on these data processing systemsprovide tools to move, copy, cut, paste, or otherwise edit data. Suchtools are known as editing tools, and each data operation such as‘move’, ‘copy’, ‘cut’, and ‘paste’ is an editing operation. Theseediting operations are referred to as basic editing operations, orsimply, editing operations. Other specialized editing tools such as‘crop’ are available for performing specialized editing operations onspecific types of data. Source and destination locations in a dataprocessing system may be files or directories in the data processingsystem. Further, the destination file may be the same as the source fileand the copy may simply be a copy to a different location in the samesource file.

Alternatively, an editing operation may be applied from one source fileto multiple destination files. For example, a typical copy operation ona text file is undertaken by selecting the text to be copied using acomputer mouse or other pointing or selecting device, and selecting thecopy operation from a menu. One way in which the copy operationselection, and other selections, can be accessed in many operatingsystem environments is by clicking the right mouse button to display themenu of operation selections, and selecting ‘copy’ from the displayedmenu.

Operations, such as ‘copy’ and other editing operations are operatingsystem dependent as well as software application dependent, and may beaccomplished via a number of alternate ways other than selecting from amenu. Other editing operations may be applied to other types of data,such as, for example, text files, spreadsheets, graphics, image files,and lists.

Currently, the basic editing operations are limited to the actualoperation. The actual operation does not involve transformation of thedata that is the subject of the editing operation. For example, a copyoperation simply copies, regardless of the data being copied, or theintention of the person performing the copy operation. Frequently, theuser performing a basic editing operation intends more than the bareediting operation. Such intentions are manifested in the manner in whichthe steps of the editing operation are performed, and actions subsequentor prior to performing the editing operation.

Therefore, it would be advantageous to have an improved method,apparatus, and computer instructions for performing additional implicitactions together with basic editing operations, specifically,re-orientation or re-ordering of data based on directional or orderedselection of data for the editing operation.

SUMMARY OF THE INVENTION

Provided are a computer implemented method and apparatus formanipulating data through directional or ordered selection of data. Afirst user input is received for selecting a section of data in adirection of selection, or an order of selection, from a source. Asecond user input is received for performing a basic editing operationon the selection. Responsive to the second input received from the user,the selected section of data is re-oriented or re-ordered in a directionor order corresponding to the direction or order of selection. A thirduser input is received for performing a basic editing operation at adestination. The re-oriented or re-ordered section of data is subjectedto the second action at the destination.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives and advantages thereof, willbest be understood by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1 is a pictorial representation of a data processing system inwhich the aspects of the process may be implemented;

FIG. 2 is a block diagram of a data processing system in which aspectsof the process may be implemented;

FIG. 3 is a block diagram illustration of one implementation of aspectsof the process in accordance with an illustrative embodiment;

FIGS. 3A-3D are illustrations of copy operation from a sourcespreadsheet to a destination spreadsheet in accordance with anillustrative embodiment;

FIGS. 4A-4D are illustrations of copy operation from a source text fileto a destination text file in accordance with an illustrativeembodiment;

FIGS. 5A-5D are illustrations of copy operation from a listing of filesin a source directory to a listing of files in a destination directory,in accordance with an illustrative embodiment;

FIG. 6 is a flowchart showing the steps of one test—whether the selectedsection of data includes only one item—that can be included in theprocess, in accordance with an illustrative embodiment;

FIG. 7 is a flowchart showing the steps of a second test—whether theselected section of data is capable of meaningful re-orientation orre-ordering—that can be included in the process, in accordance with anillustrative embodiment;

FIG. 8 is a flowchart showing the summarized steps of cut, copy, paste,and move editing operations, in accordance with an illustrativeembodiment;

FIG. 9A is a flowchart showing detailed steps of the process illustratedin FIG. 8;

FIG. 9B is a flowchart showing the re-ordering of data in conjunctionwith editing operations, in accordance with an illustrative embodiment;and

FIG. 10 is a flowchart showing selecting the desired re-orienting orre-ordering action from a menu in conjunction with editing operations,in accordance with an illustrative embodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Frequently, a user performing an editing operation intends more than thebare editing operation. Such intentions are manifested in the manner inwhich the steps of an editing operation are performed, and actionssubsequent or prior to performing the editing operation. For example, auser editing a source spreadsheet may select a section of data frombottom-row going up to the top-row of the source spreadsheet, and thenexecute the copy operation. When the user executes the paste operationon a destination spreadsheet, the section of data pasted on thedestination spreadsheet is oriented the same way—top-to-bottom—as wasthe orientation in the source spreadsheet, regardless of the user'sselection in the bottom-to-top direction. The user then has to takeseveral additional steps to re-orient the data in the bottom-to-toporientation on the destination spreadsheet.

Similarly, a user may want to move list data while simultaneouslyre-ordering the data at the destination. Currently, a move operationpreserves the ordering of the source in the destination. For example, auser working with a table of several rows of data may select severalnon-contiguous rows to move them to a new blank table. The user mayselect the rows in any desired non-sequential order. The aspects of theprocess recognize that currently, regardless of the order in which theuser selected the rows, the destination table will contain the rows inthe same order in which the rows were in the source table.

Currently, the user must undertake several subsequent steps and editingoperations on the destination table to re-organize the rows in the orderin which the user had initially selected them from the source. Thesescenarios using copy and move operations on spreadsheets and tablesrespectively are used only as examples of editing operations and datafiles. Such use is not intended to limit the illustrative embodiments tojust copy, cut, paste, or move operation on spreadsheets and tables.Such use is further not intended to limit the illustrative embodimentsto just top-to-bottom or bottom-to-top orientations of the selectedsections of data.

Aspects of the process recognize that basic editing operations currentlyimpose limitations similar to those described here when operating onvarious file types and organizations of data. Various editing operationscan employ the aspects in vertical, lateral, and diagonal directions inthe manner described here, on a variety of file types and organizationsof data.

Undoubtedly, currently available basic editing tools require numeroussteps and repeated actions by the user to accomplish the re-orientation,re-ordering, and other transformations of data that are implicit in themanner in which the user undertakes the editing operation. Implicit taskis a task that is suggested by the manner, sequence, style, direction,order or other similar attributes of the user's express action. Forexample, when a user selects a section of data in a certain direction inorder to ‘cut’ and ‘paste’, the user wants the cut section of datare-oriented in the direction of selection. In this case, an implicittask is the re-orientation of the section of data between ‘cut’ and‘paste’ editing operations implied from the direction of selection priorto the ‘cut’ operation. Aspects of the process provide a method, andapparatus, for performing implicit tasks of re-orienting, re-ordering,or transforming sections of data selected for editing operations.

With reference now to the figures and in particular with reference toFIG. 1, a pictorial representation of a data processing system is shownin which the aspects of the process may be implemented. Computer 100 isdepicted which includes system unit 102, video display terminal 104,keyboard 106, storage devices 108, which may include floppy drives andother types of permanent and removable storage media, and mouse 110.Additional input devices may be included with personal computer 100,such as, for example, a joystick, touchpad, touch screen, trackball,microphone, and the like. Computer 100 may be any suitable computer,such as an IBMO eServer™ computer or IntelliStation® computer, which areproducts of International Business Machines Corporation, located inArmonk, N.Y. Although the depicted representation shows a personalcomputer, other embodiments may be implemented in other types of dataprocessing systems, such as a network computer. Computer 100 alsopreferably includes a graphical user interface (GUI) that may beimplemented by means of systems software residing in computer readablemedia in operation within computer 100.

With reference now to FIG. 2, a block diagram of a data processingsystem is shown in which aspects of the process may be implemented. Dataprocessing system 200 is an example of a computer, such as computer 100in FIG. 1, in which code or instructions implementing the processes maybe located. In the depicted example, data processing system 200 employsa hub architecture including a north bridge and memory controller hub(MCH) 202 and a south bridge and input/output (I/O) controller hub (ICH)204. Processor 206, main memory 208, and graphics processor 210 arecoupled to north bridge and memory controller hub 202. Graphicsprocessor 210 may be coupled to the MCH through an accelerated graphicsport (AGP), for example.

In the depicted example, local area network (LAN) adapter 212 is coupledto south bridge and I/O controller hub 204 and audio adapter 216,keyboard and mouse adapter 220, modem 222, read only memory (ROM) 224,universal serial bus (USB) ports and other communications ports 232, andPCI/PCIe devices 234 are coupled to south bridge and I/O controller hub204 through bus 238, and hard disk drive (HDD) 226 and CD-ROM drive 230are coupled to south bridge and I/O controller hub 204 through bus 240.PCI/PCIe devices may include, for example, Ethernet adapters, add-incards, and PC cards for notebook computers. PCI uses a card buscontroller, while PCIe does not. ROM 224 may be, for example, a flashbinary input/output system (BIOS). Hard disk drive 226 and CD-ROM drive230 may use, for example, an integrated drive electronics (IDE) orserial advanced technology attachment (SATA) interface. A super I/O(SIO) device 236 may be coupled to south bridge and I/O controller hub204.

An operating system runs on processor 206 and coordinates and providescontrol of various components within data processing system 200 in FIG.2. The operating system may be a commercially available operating systemsuch as Microsoft® Windows® XP (Microsoft and Windows are trademarks ofMicrosoft Corporation in the United States, other countries, or both).An object oriented programming system, such as the Java™ programmingsystem, may run in conjunction with the operating system and providescalls to the operating system from Java programs or applicationsexecuting on data processing system 200 (Java and all Java-basedtrademarks are trademarks of Sun Microsystems, Inc. in the UnitedStates, other countries, or both).

Instructions for the operating system, the object-oriented programmingsystem, and applications or programs are located on storage devices,such as hard disk drive 226, and may be loaded into main memory 208 forexecution by processor 206. The processes may be performed by processor206 using computer implemented instructions, which may be located in amemory such as, for example, main memory 208, read only memory 224, orin one or more peripheral devices.

The hardware in FIGS. 1-2 may vary depending on the implementation.Other internal hardware or peripheral devices, such as flash memory,equivalent non-volatile memory, or optical disk drives and the like, maybe used in addition to or in place of the hardware depicted in FIGS.1-2. In addition, the processes may be applied to a multiprocessor dataprocessing system.

In some illustrative examples, data processing system 200 may be apersonal digital assistant (PDA), which is generally configured withflash memory to provide non-volatile memory for storing operating systemfiles and/or user-generated data. A bus system may be comprised of oneor more buses, such as a system bus, an I/O bus, and a PCI bus. Ofcourse, the bus system may be implemented using any type ofcommunications fabric or architecture that provides for a transfer ofdata between different components or devices attached to the fabric orarchitecture. A communications unit may include one or more devices usedto transmit and receive data, such as a modem or a network adapter. Amemory may be, for example, main memory 208 or a cache such as found innorth bridge and memory controller hub 202. A processing unit mayinclude one or more processors or CPUs. The depicted examples in FIGS.1-2 and above-described examples are not meant to imply architecturallimitations. For example, data processing system 200 also may be atablet computer, laptop computer, or telephone device in addition totaking the form of a PDA.

The aspects of the methods provide for computer implemented methods,apparatus, and computer usable program code for compiling source code.The methods may be performed in a data processing system, such as dataprocessing system 100 shown in FIG. 1 or data processing system 200shown in FIG. 2.

FIG. 3 is a block diagram illustration of components used to provideediting operations in accordance with an illustrative embodiment. Thesesoftware components may be executed in a data processing system such asdata processing system 200 in FIG. 2. The software components are shownto be loaded and operating within operating system (OS) 372. Generally,only certain components of an operating system are loaded in the mainmemory, such as 208, as required at any given time. Not all componentsof operating system 372 are necessarily resident in the main memory 208.Operating system 372 has a component 374 that manages the displaying,manipulation and control of graphical user interface 252 as seen by auser. Other software applications 376, such as a spreadsheetapplication, may be loaded by the operating system as needed.

Operating system 372 supports basic editing operations 380 that arecapable of working with other components and applications 376 that maybe loaded by the OS 372. Typically, an application 376 has an editor 386built into the application that presents the editing operations 380 to auser for use within the application. The enhanced editing operations 384are contemplated to be similarly presented through editor 386. Aspectsmay be implemented in the form of enhancements 382 that are also loadedby the OS 372. The basic editing operations together with theenhancements are called enhanced editing operations 384.

Typically, basic editing operations utilize some temporary intermediateworkspace 378 in order to perform the editing operations. Clipboard inWindows® operating system is an example of the temporary intermediateworkspace 378. Enhancements 382 also utilize the temporary intermediateworkspace 378. The various components of the block diagram FIG. 3 may belocated in different parts of the data processing system 200 dependingon implementation details of various operating systems, data processingsystem configurations, and requirements of various softwareapplications. FIG. 3 provides only an exemplary illustration of one wayin which aspects of the method may be implemented and is not intended tobe limiting.

With reference to FIGS. 3A-3D, a progression of spreadsheets is depictedas a process for editing data is applied to them in conjunction withediting operations in accordance with an illustrative embodiment. Thedifferent operations are examples of editing operations that may beaccomplished by a user using applications 376 loaded in operating system372 in FIG. 3.

Turning now to FIG. 3A, a spreadsheet containing rows of data is shownon which the process can be applied in conjunction with basic editingoperations, in accordance with an illustrative embodiment. FIG. 3A isonly an illustrative example used for showing aspects of the process,and is not intended to limit the process to spreadsheets.

In these illustrative examples, spreadsheet 300 is a source spreadsheetas indicated by the label 304, shown to contain rows of names 302 that auser intends to re-orient while copying to a destination file.

Continuing with the spreadsheet 300 of FIG. 3A, FIG. 3B shows the nextprogression in the process in conjunction with editing operation asapplies to spreadsheet 300, in accordance with an illustrativeembodiment. User input has been received to select rows 302 by selectingthe bottom row in 302 and sweeping the selecting device upwards to thetop row in 302. The overlaid arrow 324 indicates the direction ofselection of the section of the data. A computer mouse, such as 110 inFIG. 1, is the most commonly used selecting device for performingediting operations, but other pointing devices or selecting devices thatare capable of directional motion may be used without affecting theprocess described here.

The selected section of data is subjected to copy or cut editingoperation. This operation results in the selected section of data beingre-oriented in bottom-up orientation in temporary intermediate workspace378 in FIG. 3. Basic editing operations that may occur include, forexample, copy, cut, paste, and move, and may vary depending on theoperating system on which the software application providing the editingoperations is designed to run. Typically, editing operations utilizesome temporary intermediate workspace, such as 378 in FIG. 3, forediting the selected section of data during transition between sourceand destination files. Such temporary intermediate workspace 378,although shown as a part of main memory 208 in FIG. 2, can be a part ofdata processing system's main memory, or a separate designated memory,or space on the hard disk. Regardless of the manner of implementation ofthe temporary intermediate workspace, any processing of the selectedsection of data can take place in these illustrative examples while theselected section of data is temporarily stored in this temporaryintermediate workspace. Software implementation of the process canperform the re-orientation while the selected section of data isresident in the temporary intermediate workspace.

Turning now to FIG. 3C, a blank spreadsheet 340 is shown in accordancewith an illustrative embodiment. Spreadsheet 340 is the destinationspreadsheet as indicated by the label “destination file B” 342, for there-oriented selected rows 302 from FIG. 3B. Continuing with thespreadsheet 340 of FIG. 3C, FIG. 3D shows the next progression in theprocess in conjunction with basic editing operation as applies tospreadsheet 340. User input has been received to execute the ‘paste’editing operation to selected rows 302 onto spreadsheet 340. Selectedrows 302 are shown as being re-oriented in the bottom-to-top orientation362 by the application of the aspects of the process.

An advantage of the processes from the above description is worthnoting. As contrasted with the processes, using only basic editingoperations, a user would have to execute several steps involving severalbasic editing operations, in a repetitive manner to accomplish there-orientation of selected section of data. Using the processes, theuser does not need to execute several editing operations, or repetitivesteps to accomplish the re-orientation of the selected section of data.The processes accomplish the re-orientation as an implicit actionresulting from the direction 324 of selection of rows 302.

With reference to FIGS. 4A-4D, a progression of text files is depictedas processes are applied to the text files in conjunction with basicediting operations, in accordance with an illustrative embodiment. Thedifferent operations are examples of editing operations that may beaccomplished by a user using applications 256 loaded in operating system372 in FIG. 3.

Turning now to FIG. 4A, a text file containing a line of text is shownon which the process can be applied in conjunction with basic editingoperations, in accordance with an illustrative embodiment. FIG. 4A isonly an illustrative example used for showing the aspects of theprocess, and is not intended to limit the process to text files.

Text file 400 is a source file as indicated by the label 404, shown tocontain a line of text 402 that a user intends to re-orient whilecopying to a destination file.

Continuing with the text file 400 of FIG. 4A, FIG. 4B shows the nextprogression in the process in conjunction with basic editing operationas applies to text file 400, in accordance with an illustrativeembodiment. User input has been received to select line of text 402 byselecting the right end of the line of text 402 and sweeping theselecting device right-to-left over the line of text 402, as indicatedby the overlaid arrow 424 indicating the direction of selection of thesection of the data. Again, a computer mouse, or other pointing orselecting devices that are capable of directional motion may be used forselecting sections of data in these illustrative embodiments.

The section of data thus selected is subjected to ‘copy’ or ‘cut’ basicediting operation. The section of data is re-oriented in right-to-leftorientation in memory, such as Main Memory 208 in FIG. 2, or, moreprecisely, in temporary intermediate space 378 in FIG. 3. Aspects of theprocess can perform the re-orienting while the selected section of datais in the temporary intermediate workspace as described above.

Turning now to FIG. 4C, a blank text file 440 is shown in accordancewith an illustrative embodiment. Text file 440 is the destination textfile as indicated by the label “destination file B” 442, for there-oriented selected line of text 402 from FIG. 4B. Continuing with thespreadsheet 440 of FIG. 4C, FIG. 4D shows the next progression in theprocess in conjunction with editing operation as applies to text file440, in accordance with an illustrative embodiment. User input has beenreceived to execute ‘paste’ editing operation to selected line of text402 onto text file 440. Selected line of text 402 is shown to have beenre-oriented in the right-to-left orientation 462 by the application ofaspects.

An advantage of the process is worth noting. As contrasted with theprocess, using only basic editing operations, a user would have toexecute several steps involving several basic editing operations, in arepetitive manner to accomplish the re-orientation of selected sectionof data. Using the process, the user need not execute several editingoperations, or repetitive steps to accomplish the re-orientation of theselected section of data. The process accomplishes the re-orientation asan implicit action resulting from the direction 424 of selection of lineof text 402.

While re-orienting text from right-to-left may not result in meaningfultext as shown in this exemplary illustration, transposing certain formsof data from one direction to another is useful in a variety of dataprocessing activities. For example, an image may be transposedright-to-left to yield a mirror image of the original image, which mayhave meaningful applications. Present example uses plain text in orderto illustrate the effects of the process.

With reference to FIGS. 5A-5D, a progression of lists is depicted as theprocess is applied to the lists in conjunction with basic editingoperations, in accordance with an illustrative embodiment. The differentoperations are examples of editing operations that may be accomplishedby a user using applications 376 loaded in operating system 372 in FIG.3.

Turning now to FIG. 5A, a list containing several files is shown onwhich aspects of the process can be applied in conjunction with editingoperations, in accordance with an illustrative embodiment. FIG. 5A isonly an illustrative example used for showing the steps of the process,and is not intended to limit the process to list of files.

List 500 is a source list as indicated by the label 504, shown tocontain several files 502 that a user intends to re-order while copyingto a destination list.

Continuing with the list 500 of FIG. 5A, FIG. 5B shows the nextprogression in the process in conjunction with basic editing operationas applies to list 500, in accordance with an illustrative embodiment.User input has been received to select files 502 by selecting one fileat a time. The order of selection is depicted by the overlaid circlednumerals 524. The filename with circled numeral 1 is selected first; thefilename with circled numeral 2 is selected next, and so on. The sectionof data thus selected is subjected to ‘copy’ or ‘cut’ basic editingoperation. The section of data is re-ordered in the order of selectionin memory, such as Main Memory 208 in FIG. 2, or more precisely, intemporary intermediate space 378 of FIG. 3, while the selected sectionof data is in the temporary intermediate workspace as described above.

Turning now to FIG. 5C, a blank list 540 is shown in accordance with anillustrative embodiment. List 540 is the destination list as indicatedby the label “destination_file_list” 544, for the re-ordered selectedfiles 502 from FIG. 5B. Continuing with the list 540 of FIG. 5C, FIG. 5Dshows the next progression in the process in conjunction with basicediting operation as applies to list 540. User input is received toexecute ‘paste’ editing operation to selected files 502 onto list 540.Selected files 502 are shown to have been re-ordered 542 in the order ofselection 524 by the application of aspects.

An advantage of the process is worth noting. As contrasted with theprocess, using only basic editing operations, a user would have toexecute several steps involving several basic editing operations, in arepetitive manner to accomplish the re-ordering of selected section ofdata. Using the process, the user does not need to execute severalediting operations, or repetitive steps to accomplish the re-ordering ofthe selected section of data. The process accomplishes the re-orderingas an implicit action resulting from the order of selection 524 ofselection files 502.

Re-orientation, re-ordering, and transformation of data generally isdependent on the nature of the data. Some types of data yield meaningfulresults when transformed in certain ways, and meaningless results whentransformed in other ways. For example, an image data is meaningful whentransposed right-to-left, but a text in English language is generallynot. Similarly, re-ordering a selection of single item selection isoften meaningless, but re-ordering a selection of multiple items ismeaningful. Therefore, a number of tests can be incorporated in theprocess to make the process more meaningful to the software applicationwith which the process may be associated.

With reference now to FIG. 6, a flowchart of a process for a test isdepicted in accordance with an illustrative embodiment. The processillustrated in FIG. 6 may be implemented in a component, such asenhancements 382 in FIG. 3.

The process begins with a section of data being selected from a sourcein an application such as 376 (step 602). A basic editing operation suchas 260 is executed (step 612). The process then determines if theselected section of data contains a single item (step 604). Thisdetermination can be made by simply counting the number of items inselected section of data in accordance with an illustrative embodiment.If the selected section of data contains more than one item (NO branchof step 604), the process proceeds to re-orient the selected section ofdata in temporary intermediate space such as 378 (step 606). Followingthe re-orientation of the selected section of data (step 606), theprocess proceeds to performing a selected basic editing operation suchas 380 at the destination (step 610). If, however, the selected sectionof data contains a single item (YES branch of step 604), the processproceeds to performing the selected basic editing operation such as 380at the destination (step 610).

With reference now to FIG. 7, a flowchart is shown, illustrating aprocess for a different test in accordance with an illustrativeembodiment. The process illustrated in FIG. 7 may be implemented in acomponent, such as enhancements 382 in FIG. 3. Tests shown in FIGS. 6and 7 may be combined in a component, such as enhancements 382.

The process begins with a section of data being selected from a sourcein an application such as 376 (Step 702). A basic editing operation suchas 380 is executed (Step 712). The process then determines if theselected section of data is capable of meaningful re-orientation (Step704). One way in which this determination can be made is by looking up atable containing various data types with corresponding flags indicatingwhether re-orientation of that data type is meaningful. The illustrativeexamples use the lookup table method, which is described here only as anexemplary method for making this determination, and is not intended tobe limiting on the process. Other ways for making this determination arepossible. For example, the determination may also be made by matching achecksum or hash value of re-oriented data to acceptable checksum orhash values.

If the process determines that the selected section of data is capableof meaningful re-orientation (YES branch of step 707), the processproceeds to re-orient the selected section of data (step 706). Followingthe re-orientation of the selected section of data (step 706), theprocess proceeds to performing the basic editing operation at thedestination (step 710). If, however, the selected section of data is notcapable of meaningful re-orientation (NO branch of step 704), theprocess proceeds to performing the basic editing operation at thedestination (step 710).

FIG. 8 is a flowchart showing summarized aspects for ‘cut’, ‘copy’,‘paste’, and ‘move’ basic editing operations in accordance with anillustrative embodiment. The process depicted in FIG. 8 may beimplemented in a component, such as enhancements 382 in FIG. 3. Theprocess begins with receiving a user input for a directional or orderedselection of section of data from a source in application such as 376(step 802). Next, the process receives a user input for executing anediting operation 380, such as cut or copy, on the selected section ofdata (step 804). The process then re-orients or re-orders the data intemporary intermediate workspace 378, depending upon whether theselection was directional or ordered (step 806). Next, the processreceives a user input to execute an editing operation 380, such as moveor paste, at the destination (step 808). Having placed the re-orientedor re-ordered section of data at the destination, the process ends. Forclarity and conciseness, the term “choice of selection” is used to meaneither a direction of selection, or an order of selection, and the term“chosen selection” is used to mean either a selection madedirectionally, or a selection made in a particular order.

FIG. 9A is a flowchart showing detailed aspects of the processillustrated in FIG. 8 in accordance with an illustrative embodiment.FIG. 9A shows an implementation of the illustrative embodiment forre-orienting data in conjunction with basic editing operations. Theprocess illustrated in FIG. 7 may be implemented in a component, such asenhancements 382 in FIG. 3.

The process proceeds by receiving a user input for selecting a sectionof data from a source in an application 376 (step 922). Step 922 issimilar to step 802 in FIG. 8. Next, the process receives another userinput to execute a basic editing operation 380 (Step 924) similar tostep 804 in FIG. 8. The process then places the selected section of datain a temporary intermediate workspace 378 (step 926). Next, the processdetermines if the direction or order of selection is different from thedirection or order of selected items in the source (Step 928). Theprocess may determine that the direction or the order of the selectedsection of data is the same as in the source (NO branch of step 928). Ifthis is the case, the process does not re-orient or re-order theselected section of data in temporary intermediate workspace, andproceeds to the next step where the user executes a basic editingoperation at the destination (step 932). If, however, the processdetermines that the direction or the order of the selected section ofdata is different from the source (YES branch of step 928), the processre-orients or re-orders the selected section of data in temporaryintermediate workspace (step 930). The process then receives anotheruser input for executing a basic editing operation at the destination(step 932).

Re-orienting, ordering, sorting, and transforming data while intemporary intermediate workspace is commonly utilized for a variety ofother text editing actions. The invention lies, not in the re-orientingor re-ordering technology, but in capturing the directional or orderingattributes of a selection while a user makes the selection, and usingsuch attributes to perform implicit actions of re-orienting andre-ordering while the selected section of data resides in temporaryintermediate workspace.

FIG. 9B is a flowchart showing detailed aspects illustrated in FIG. 8 inaccordance with an illustrative embodiment. FIG. 9B shows an alternateimplementation for re-ordering data in conjunction with basic editingoperations. The process illustrated in FIG. 7 may be implemented in acomponent, such as enhancements 382 in FIG. 3.

When the process receives user input for selecting a number of distinctitems in a certain order, the ordering of the selection becomesimportant for performing the re-ordering. The process begins when a userinput is received for selecting an item from a source in application 376(Step 902). The process records the order number of the selection (step904), incrementing the order number for each subsequent selection inputreceived from user, prior to executing an editing operation 380. Therecording of order numbers can be done in memory such as main memory 208in FIG. 2, or in other designated memory or storage space. The processrepeats steps 902-904 as long as the user inputs are received makingmore selections (YES branch of step 906). The process determines whetherall the selections have been made, forming a selected section of data(NO branch of step 906). When the process has made all selections, theprocess proceeds to re-order the selected section of data according tothe recorded selection order (step 908). One way to determine whetherall user inputs for selecting data have been received is to detect auser input for executing a basic editing operation 380 following theinputs for selection. However, this method of determination is notintended to be limiting but only intended to show an exemplary methodfor making the determination in accordance with an illustrativeembodiment. Other methods for making this determination are possible,such as, detecting a user input expressly signaling the end ofselection.

The re-ordering of selected section of data (step 908) essentiallyfollows the description of step 806 in FIG. 8 that has been elaboratedin the detailed description of FIG. 9A. The process terminates with theexecution of an editing operation 380 at the destination (step 910).

FIG. 10 is a flowchart showing a process for selecting desiredre-orienting or re-ordering action from a menu in conjunction with basicediting operations, in accordance with an illustrative embodiment. Theprocess illustrated in FIG. 10 may be implemented in a component, suchas enhancements 382 in FIG. 3.

The process as illustrated in FIGS. 8, 9A, and 9B illustratere-orienting or re-ordering based on the directional or orderingattributes of the selection input from the user. The flowchart in FIG.10 shows that the process can also be implemented in a menu drivenmanner in accordance with another illustrative embodiment. Basic editingoperations such as copy, cut, paste, or move are usually presented tothe user via a menu or a shortcut to a menu of available operations, ora shortcut to an operation itself, in the software application. The userselects a section of data, and then a basic editing operation from themenu to apply to the selected section of data.

The aspects can be encapsulated in the form of an enhanced editingoperation 384. Such enhanced editing operations can then be madeavailable on a menu or a shortcut to a menu of available operations, orin the form of a shortcut to the enhanced editing operation. Theenhanced editing operations 384 are the commonly provided editingoperation in conjunction with the process as shown in FIG. 3. Someexamples of such enhanced editing operations are—if the basic editingoperation is ‘copy’, the enhanced editing operation would be ‘copyright-to-left’, or ‘Copy bottom-to-top’, or ‘Copy in the orderselected’. Other basic editing operations can similarly be presented asenhanced editing operations in accordance with this illustrativeprocess. This method of ‘explicit’ action on the selected section ofdata is an alternate way of making the process available to the user. Anexplicit action is an action taken in response to an express input fromthe user. An explicit action is not deduced from other actions of theuser. In the explicit action method, the process relies on user'sexplicit selection of enhanced editing operation rather than theimplicit direction or order of selected section of data. Similar to theimplicit task method, the explicit action method also eliminates theneed for multiple or repetitive operations in order to re-orient orre-order the selected section of data at the destination.

Here, the process begins by receiving a user input for selecting sectionof data either directionally or in some order from a source inapplication 376 (step 1002). Next, instead of receiving a user input ofa basic editing operation selection from a menu, the process receives auser input selecting an enhanced editing operation 384 from the menu(step 1004). The selected menu option represents the basic editingoperation in conjunction with the desired aspect (step 1004). Next, theprocess performs the re-orientation or re-ordering depending on theenhanced editing operation selected by the user (step 1006). The processterminates with the execution of an editing operation 380 at thedestination (step 1008).

In this manner, the aspects of the process provide a computerimplemented method, apparatus, and computer usable program code forimplied editing action through directional and ordered data selection. Afirst input for selecting data from a source is received. The input forselecting data has directional or ordering attributes. A second inputfor performing an editing operation at the source is received. Thedirectional or ordering attributes are combined with the editingoperation at the source. Re-orientation or re-ordering of selected datais performed if certain tests and conditions for doing so are satisfied.A third user input for performing an editing operation at a destinationis received. The re-oriented or re-ordered selection is subjected to theediting operation at the destination.

As contrasted with the process, using only basic editing operations, auser would have to execute several steps involving several basic editingoperations, in a repetitive manner to accomplish the re-orienting orre-ordering of selected section of data. Using the process, the userdoes not need to execute several editing operations, or performrepetitive steps to accomplish the re-orienting or re-ordering of theselected section of data. The process accomplishes the re-orienting orre-ordering as an implicit action resulting from the direction or orderof selection from the source.

The invention can take the form of an entirely hardware embodiment, anentirely software embodiment or an embodiment containing both hardwareand software elements. In a preferred embodiment, the invention isimplemented in software, which includes but is not limited to firmware,resident software, microcode, etc.

Furthermore, the invention can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer readable medium can be any tangibleapparatus that can contain, store, communicate, propagate, or transportthe program for use by or in connection with the instruction executionsystem, apparatus, or device.

The medium can be (1) a computer-readable storage medium including anelectronic, magnetic, optical, electromagnetic, infrared, orsemiconductor system (or apparatus or device) or (2) a propagationmedium. Examples of a computer-readable storage medium include asemiconductor or solid-state memory, magnetic tape, a removable computerdiskette, a random access memory (RAM), a read-only memory (ROM), arigid magnetic disk and an optical disk. Current examples of opticaldisks include compact disk-read only memory (CD-ROM), compactdisk-read/write (CD-R/W) and DVD.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modem and Ethernet cards are just a few of thecurrently available types of network adapters.

The description of the illustrative embodiment is not intended to beexhaustive or limited to the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art. The embodiment was chosen and described in order to bestexplain the principles of the invention, the practical application, andto enable others of ordinary skill in the art to understand theinvention for various embodiments with various modifications as aresuited to the particular use contemplated.

1. A computer implemented method for manipulating a section of datacomprising a plurality of data elements, the computer implemented methodcomprising steps performed by a computer of: receiving, by the computer,a first user input for selecting the section of data comprising theplurality of data elements from a source in a direction of selection,wherein the selecting of the section of data comprises selecting adesignated data element from the plurality of data elements and thensweeping a selecting device in a certain positional direction to includemore of the plurality of elements; responsive to receiving the firstuser input by the computer, selecting the section of data comprising theplurality of data elements from the source in the direction ofselection, to form a selected section of data; receiving, by thecomputer, a second user input to manipulate the selected section ofdata; responsive to receiving the second user input to manipulate theselected section of data by the computer, determining whether to performa manipulation on the selected section of data using a look-up tablecontaining various data types with corresponding flags indicatingwhether to re-orient a given data type of the various data types and ifthe manipulation is so determined to be performed, performing themanipulation on the selected section of data using the direction ofselection to form a modified section of data; receiving, by thecomputer, a third user input to manipulate the selected section of dataat a destination; responsive to receiving the third user input by thecomputer, performing a manipulation on the modified section of data atthe destination; wherein the direction of selection designates asequential orientation for the selected section of data such that themodified section of data is re-oriented based on a direction of thedirection of selection.
 2. The computer implemented method of claim 1,wherein the second user input is one of Copy, Cut or Move; and whereinthe third user input is one of Paste or Move.
 3. The computerimplemented method of claim 1, wherein the second user input is receivedas a selection from a menu, and the second user input comprises a basicediting operation and an action using the direction of selection.
 4. Thecomputer implemented method of claim 1, further comprising: determininga number of items in the selected section of data, wherein themanipulation on the selected section of data using the direction ofselection is only performed when the selected section of data comprisesmore than one item.
 5. The computer implemented method of claim 1,wherein the selected section of data comprises an image and the modifiedsection of data is a mirror image of the image.
 6. A computerimplemented method for manipulating a section of data comprising aplurality of data elements, the computer implemented method comprising:responsive to receiving a first user input selecting the section of datacomprising the plurality of data elements from a source having adirection of selection, identifying the direction of selection in whichthe section of data comprising the plurality of data elements has beenselected by the first user input to form a selected section of data,wherein the selecting of the section of data comprises selecting adesignated data element from the plurality of data elements and thensweeping a selecting device in a certain positional direction to includemore of the plurality of elements; and responsive to receiving a seconduser input to manipulate the selected section of data at a destination,determining whether to perform a manipulation on the selected section ofdata using a look-up table containing various data types withcorresponding flags indicating whether to re-orient a given data type ofthe various data types and if the manipulation is so determined to beperformed, performing the manipulation on the selected section of dataat the destination using the direction of selection in which the sectionof data has been selected, wherein the direction of selection designatesa sequential orientation for the selected section of data at thedestination such that the selected section of data at the destination isre-oriented.
 7. The computer implemented method of claim 6 wherein theperforming step comprises: inserting the section of data in a mannerdetermined by the direction of selection of the section of data.
 8. Thecomputer implemented method of claim 6, wherein the manipulation isselected from one of Copy, Cut, Paste, and Move.
 9. The computerimplemented method of claim 6, wherein the second user input indicatesthat the direction of selection in which the section of data has beenselected is to be used in manipulating the selected section of data. 10.The computer implemented method of claim 6, wherein the second userinput is received as a selection from a menu.
 11. The computerimplemented method of claim 6, further comprising: determining a numberof items in the selected section of data, wherein the manipulation onthe selected section of data using the direction of selection isperformed when the selected section of data comprises more than oneitem.
 12. The computer implemented method of claim 6, wherein theselected section of data comprises an image and wherein the modifiedsection of data is a mirror image of the image.
 13. A computer programproduct comprising a computer readable storage medium including computerusable code for manipulating a section of data comprising a plurality ofdata elements, the computer program product comprising: computer usablecode for receiving a first user input for selecting the section of datacomprising the plurality of data elements from a source in a directionof selection, wherein the selecting of the section of data comprisesselecting a designated data element from the plurality of data elementsand then sweeping a selecting device in a certain positional directionto include more of the plurality of elements; responsive to receivingthe first user input, computer usable code for selecting the section ofdata comprising the plurality of data elements from the source in thedirection of selection, to form a selected section of data; computerusable code for receiving a second user input to manipulate the selectedsection of data; responsive to receiving the second user input tomanipulate the selected section of data, computer usable code fordetermining whether to perform a manipulation on the selected section ofdata using a look-up table containing various data types withcorresponding flags indicating whether to re-orient a given data type ofthe various data types and if the manipulation is so determined to beperformed, computer usable code for performing the manipulation on theselected section of data using the direction of selection to form amodified section of data; computer usable code for performing amanipulation on the selected section of data using the of directionselection to form a modified section of data; computer usable code forreceiving a third user input to manipulate the selected section of dataat a destination; responsive to receiving the third user input, computerusable code for performing a manipulation on the modified section ofdata at the destination; wherein the direction of selection designates asequential orientation for the selected section of data such that themodified section of data is re-oriented based on a direction of thedirection of selection.
 14. The computer program product of claim 13,wherein the second user input is one of Copy, Cut or Move; and whereinthe third user input is one of Paste or Move.
 15. The computer programproduct of claim 13, wherein the second user input is received as aselection from a menu, and the second user input comprises a basicediting operation and an action using the direction of selection. 16.The computer program product of claim 13, wherein the selected sectionof data comprises an image and the modified section of data is a minorimage of the image.
 17. A system for manipulating a section of datacomprising a plurality of data elements, the system comprising: a dataprocessor coupled to a memory and operable for executing instructions inthe memory; a first editor in a source application, wherein the firsteditor receives a first user input for selecting the section of datacomprising the plurality of data elements from a source in a directionof selection; responsive to receiving the first user input, the firsteditor selects the section of data comprising the plurality of dataelements from the source in the direction of selection, to form aselected section of data, wherein the selecting of the section of datacomprises selecting a designated data element from the plurality of dataelements and then sweeping a selecting device in a certain positionaldirection to include more of the plurality of elements; the first editorreceives a second user input to manipulate the selected section of data;responsive to receiving the second user input to manipulate the selectedsection of data, the first editor determines whether to perform amanipulation on the selected section of data using a look-up tablecontaining various data types with corresponding flags indicatingwhether to re-orient a given data type of the various data types and ifthe manipulation is so determined to be performed, the first editorperforms the manipulation on the selected section of data using thedirection of selection to form a modified section of data; a secondeditor in a destination application receives a third user input tomanipulate the selected section of data at a destination; responsive toreceiving the third user input, the second editor performs amanipulation on the modified section of data at the destination; whereinthe direction of selection designates a sequential orientation for theselected section of data such that the modified section of data isre-oriented based on a direction of the direction of selection.
 18. Thesystem of claim 17, wherein the second user input is one of Copy, Cut orMove; and wherein the third user input is one of Paste or Move.
 19. Thesystem of claim 17, wherein the second user input is received as aselection from a menu, and the second user input comprises a basicediting operation and an action using the direction of selection. 20.The system of claim 17, wherein the selected section of data comprisesan image and the modified section of data is a mirror image of theimage.